package main

import (
	"fmt"
	"math/rand"
)

func main() {
	// 打印九九乘法表。如果可以要求间隔均匀。
	for i := 1; i < 10; i++ {
		for j := 1; j <= i; j++ {
			if j == 1 {
				fmt.Printf("%d x %d = %-3d", j, i, i*j)
			} else {
				fmt.Printf("%d x %d = %-4d", j, i, i*j)
			}
		}
		fmt.Println()
	}
	fmt.Println()

	// 随机生成20以内的20个非0正整数，打印出来。对生成的数值，第单数个（不是索引）累加求和，第偶数个累乘求积。打印结果
	sum := 0
	product := 1

	for i := 1; i <= 20; i++ {
		num := rand.Intn(20) + 1
		fmt.Printf("%d ", num)
		if i%2 == 0 {
			product *= num
		} else {
			sum += num
		}
	}
	fmt.Println()
	fmt.Printf("奇数的和： %d\n偶数的积: %d\n", sum, product)
	fmt.Println()

	// 打印100以内的斐波那契数列
	// 1 1 2 3 5 8 13 21 34 55 89

	var i, j int
	for num := 0; num <= 100; {
		if num == 0 {
			num += 1
			fmt.Printf("%d ", num)
			i = num
		} else if num == 1 {
			fmt.Printf("%d ", num)
			num += i
		} else {
			fmt.Printf("%d ", num)
			j = num
			num += i
			i = j
		}
	}
	fmt.Println()

	for x, y := 0, 1; x < 89; {
		x, y = (x + y), x
		// if x >= 100 {
		// 	break
		// }
		fmt.Printf("%d ", x)

	}

}


// 批改意见
// 1. 逻辑清晰，思路正确，可以尝试将每个需求提取到单独的函数中去实现